<?php
require_once ('Personas/consultas_personas.php');
class ci_persona extends megasubasta_ci
{
	protected $s__seleccion_persona;
	protected $s__datos_filtro;
	protected $s__where;
	//-----------------------------------------------------------------------------------
	//---- Configuraciones --------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf()
	{
		$this->cn()->cargar();
	}

	//-----------------------------------------------------------------------------------
	//---- Eventos ----------------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function evt__Nuevo()
	{
		unset($this->s__seleccion_persona);
		$this-> set_pantalla('pant_am_persona');
	}

	//-----------------------------------------------------------------------------------
	//---- cuadro_persona ---------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__cuadro_persona(megasubasta_ei_cuadro $cuadro)
	{
		if(isset($this->s__datos_filtro)){
			$datos = consultas_personas::listado_personas($this->s__where);
		}else{
			$datos = consultas_personas::listado_personas();
		}
		$cuadro->set_datos($datos);		
	}

	function evt__cuadro_persona__seleccion($seleccion)
	{
		$this->s__seleccion_persona=$seleccion;
		$this->set_pantalla('pant_am_persona');
	}

	function evt__cuadro_persona__eliminar($seleccion)
	{
		$this->cn()->cargar($seleccion);
		$id_memoria = $this->cn()->traer_persona($seleccion);
		$this->cn()->set_cursor_persona($id_memoria[0]);
				
		if ($this->cn()->hay_cursor_persona()) {
			$datos = $this->cn()->get_persona();
			$datos['baja'] = 'true';
			$this->cn()->set_persona($datos);
			
			try {
				$this->cn()->guardar();
				$this->cn()->resetear();
			} catch(toba_error_db $error) {
				throw $error;
			}		
		}
		//tenia yo antes asi
		//$this->cn()->eliminar_persona($seleccion);
		//$this->cn()->guardar();
	}

	//-----------------------------------------------------------------------------------
	//---- filtro_persona ---------------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__filtro_persona(megasubasta_ei_filtro $filtro)
	{
		if (isset($this->s__datos_filtro)){  //al filtro este le paso los datos de la variable datos_filtro usada en el filtro
			$filtro->set_datos($this->s__datos_filtro); 
			$this->s__where = $filtro->get_sql_where();
		}
	}

	function evt__filtro_persona__filtrar($datos)
	{
		$this->s__datos_filtro = $datos;
	}

	function evt__filtro_persona__cancelar()
	{
		unset($this->s__datos_filtro);
	}

	//-----------------------------------------------------------------------------------
	//---- formulario_persona -----------------------------------------------------------
	//-----------------------------------------------------------------------------------

	function conf__formulario_persona(megasubasta_ei_formulario $form)
	{
		if(isset($this->s__seleccion_persona)){
			//$this->dep('formulario_persona')->set_solo_lectura('id_pais');
			return $this->cn()->obtener_persona($this->s__seleccion_persona);
		}
	}

	function evt__formulario_persona__alta($datos)
	{
		$this->cn()->agregar_persona($datos);
		
		$usuario=$datos['usuario'];
		$cantidad_usuarios=consultas_personas::usuario($usuario);
		//ei_arbol($cantidad_usuarios);
		
		if ($cantidad_usuarios['cantidad'] == 1){
				toba::notificacion()->agregar("El nombre de usuario ya existe, por favor seleccione otro", 'info');
			}else{
				try{
					$this->cn()->guardar();
					toba::notificacion()->agregar("La Persona se ha dado de alta correctamente", 'info');
					$this-> set_pantalla('pant_ini_persona');
				}catch (toba_error_db $error){
					$sql_state = $error->get_sqlstate();
					if($sql_state == 'db_23505'){
						//$this->informar_msg("Ya existe el pais");
						toba::notificacion()->agregar("La Persona ya existe", 'info');
						$this->cn()->resetear();
					}else{
						throw $error;
						}
					}
			} 	
	}


	function evt__formulario_persona__modificacion($datos)
	{
		if(isset ($this->s__seleccion_persona)){
			$this->cn()->modificar_persona($this->s__seleccion_persona,$datos);
		try{
			//$this->cn()->guardar();
			toba::notificacion()->agregar("La Persona se ha modificado correctamente", 'info');
			unset($this->s__seleccion_persona);
			$this->set_pantalla('pant_ini_persona');
		}catch (toba_error_db $error){
			$sql_state = $error->get_sqlstate();
			if($sql_state == 'db_23505'){
				//$this->informar_msg("Ya existe el pais");
				toba::notificacion()->agregar("La Persona ya existe", 'info');
				$this->cn()->resetear();
			}else{
				throw $error;
				}
			}
		}
		unset($this->s__seleccion_persona);
		unset($this->s__datos_filtro);
	}

	function evt__formulario_persona__cancelar()
	{
		unset($this->s__seleccion_persona);
		$this-> set_pantalla('pant_ini_persona');
	}

}

?>
